import Vue from 'vue'
import App from '../App.vue'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import axios from 'axios'

// 配置axios
axios.defaults.baseURL = '/' // 使用代理路径
axios.defaults.timeout = 360000 // 增加超时时间到6分钟（360000ms）
axios.defaults.withCredentials = true // 允许跨域携带cookie

// 添加请求拦截器
axios.interceptors.request.use(
  config => {
    // 设置请求头，解决可能的跨域问题
    config.headers['Content-Type'] = 'application/json'
    // 可以在这里添加token等认证信息
    return config
  },
  error => {
    console.error('请求配置错误:', error)
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  response => {
    return response.data
  },
  error => {
    // 增强错误处理
    if (error.response) {
      // 服务器返回错误状态码
      console.error('服务器错误:', error.response.status, error.response.data)
    } else if (error.request) {
      // 请求已发出，但没有收到响应
      console.error('网络错误，未收到响应:', error.request)
      // 可以添加一个友好的提示
      if (typeof Vue.prototype.$message !== 'undefined') {
        Vue.prototype.$message.error('网络连接失败，请检查网络或稍后重试')
      }
    } else {
      // 请求设置出错
      console.error('请求配置错误:', error.message)
    }
    return Promise.reject(error)
  }
)

// 将axios挂载到Vue原型上
Vue.prototype.$axios = axios

// 使用Element UI
Vue.use(ElementUI)

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')